Field
Various features relate to active depth sensing, and more specifically to controlling output power of a structured light codeword transmitter using code domain statistics.
Description of the Related Art
Imaging devices that are structured light active sensing systems include a transmitter and a receiver configured to transmit and receive patterns corresponding to spatial codes (or “codewords”) to generate a depth map that indicates the distance of one or more objects in a scene from the imaging device. The farther away an object in a scene is from the transmitter and the receiver, the closer a received codeword reflected from the object is from its original position (compared to the transmitted codeword) because a propagation path of the outgoing codeword and the reflected incoming codeword are more parallel. Conversely, the closer the object is to the transmitter and receiver, the farther the received codeword is from its original position in the transmitted codeword. Accordingly, the difference between the position of a received codeword and the corresponding transmitted codeword may be used to determine the depth of an object in a scene. Structured light active sensing systems may use these determined depths to generate a depth map of a scene, which may be a three dimensional representation of the scene. Many applications may benefit from determining a depth map of a scene, including image quality enhancement and computer vision techniques.
Each codeword may be represented by rows and columns of intensity values corresponding to symbols. For example, binary spatial codes may use zeros (0's) and ones (1's), corresponding to dark and bright intensity values, to represent a binary pattern. Other spatial codes may use more than two different intensity values corresponding to more than two symbols. Other spatial representations also may be used.
Generating a depth map depends on detecting codewords. To detect codewords made up of an array of symbols, decoding filters may identify spatial boundaries for codewords and symbols, and classify symbols as, for example, “0” or “1” based on their intensity values. Decoding filters may use matched filters, corresponding to the set of harmonic basis functions used to define the set of possible codewords, to classify incoming basis functions. Therefore, depth map accuracy depends on accurately receiving symbols, codewords, and/or basis functions.
If the power level of a light source used to project a pattern (for example, a laser) is too low, then the spots corresponding to brighter symbols may be too dark to be differentiated from darker symbols. If the power level of the light source is too high, then the spots corresponding to brighter symbols may become saturated and bleed into (blend in with) neighboring spots. When this happens, it may be difficult to accurately classify symbols, codewords, and basis functions. Optimal power level ranges may depend at least partially on object depth and surface reflectivity. Optimal power levels may vary both within scenes and between scenes.
Existing methods and systems to control light source power may not account for local variation, and may not be optimized to maximize symbol, codeword, or basis function accuracy. Accordingly, there is a need for methods and systems to control light source power for structured light systems for more accurate depth map generation.